home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 March / PCWMAR09.iso / Software / Freeware / Adobe Media Player 1.6 / adobe_media_player.air / AMP.swf / scripts / mx / managers / PopUpManagerImpl.as < prev    next >
Encoding:
Text File  |  2008-11-25  |  46.0 KB  |  1,272 lines

  1. package mx.managers
  2. {
  3.    import flash.display.DisplayObject;
  4.    import flash.display.DisplayObjectContainer;
  5.    import flash.display.Graphics;
  6.    import flash.display.InteractiveObject;
  7.    import flash.display.Sprite;
  8.    import flash.display.Stage;
  9.    import flash.events.Event;
  10.    import flash.events.IEventDispatcher;
  11.    import flash.events.MouseEvent;
  12.    import flash.geom.Point;
  13.    import flash.geom.Rectangle;
  14.    import mx.automation.IAutomationObject;
  15.    import mx.core.ApplicationGlobals;
  16.    import mx.core.FlexSprite;
  17.    import mx.core.IChildList;
  18.    import mx.core.IFlexDisplayObject;
  19.    import mx.core.IFlexModule;
  20.    import mx.core.IInvalidating;
  21.    import mx.core.ISWFLoader;
  22.    import mx.core.IUIComponent;
  23.    import mx.core.UIComponent;
  24.    import mx.core.UIComponentGlobals;
  25.    import mx.core.mx_internal;
  26.    import mx.effects.Blur;
  27.    import mx.effects.Fade;
  28.    import mx.effects.IEffect;
  29.    import mx.events.EffectEvent;
  30.    import mx.events.FlexEvent;
  31.    import mx.events.FlexMouseEvent;
  32.    import mx.events.InterManagerRequest;
  33.    import mx.events.MoveEvent;
  34.    import mx.events.SWFBridgeRequest;
  35.    import mx.events.SandboxMouseEvent;
  36.    import mx.styles.IStyleClient;
  37.    import mx.utils.NameUtil;
  38.    
  39.    use namespace mx_internal;
  40.    
  41.    public class PopUpManagerImpl implements IPopUpManager
  42.    {
  43.       private static var instance:IPopUpManager;
  44.       
  45.       mx_internal static const VERSION:String = "3.2.0.3958";
  46.       
  47.       private var popupInfo:Array;
  48.       
  49.       mx_internal var modalWindowClass:Class;
  50.       
  51.       public function PopUpManagerImpl()
  52.       {
  53.          super();
  54.          var _loc1_:ISystemManager = ISystemManager(SystemManagerGlobals.topLevelSystemManagers[0]);
  55.          _loc1_.addEventListener(SWFBridgeRequest.CREATE_MODAL_WINDOW_REQUEST,createModalWindowRequestHandler,false,0,true);
  56.          _loc1_.addEventListener(SWFBridgeRequest.SHOW_MODAL_WINDOW_REQUEST,showModalWindowRequest,false,0,true);
  57.          _loc1_.addEventListener(SWFBridgeRequest.HIDE_MODAL_WINDOW_REQUEST,hideModalWindowRequest,false,0,true);
  58.       }
  59.       
  60.       private static function nonmodalMouseWheelOutsideHandler(param1:DisplayObject, param2:MouseEvent) : void
  61.       {
  62.          if(!param1.hitTestPoint(param2.stageX,param2.stageY,true))
  63.          {
  64.             if(param1 is IUIComponent)
  65.             {
  66.                if(IUIComponent(param1).owns(DisplayObject(param2.target)))
  67.                {
  68.                   return;
  69.                }
  70.             }
  71.             dispatchMouseWheelOutsideEvent(param1,param2);
  72.          }
  73.       }
  74.       
  75.       private static function dispatchMouseWheelOutsideEvent(param1:DisplayObject, param2:MouseEvent) : void
  76.       {
  77.          if(!param1)
  78.          {
  79.             return;
  80.          }
  81.          var _loc3_:MouseEvent = new FlexMouseEvent(FlexMouseEvent.MOUSE_WHEEL_OUTSIDE);
  82.          var _loc4_:Point = param1.globalToLocal(new Point(param2.stageX,param2.stageY));
  83.          _loc3_.localX = _loc4_.x;
  84.          _loc3_.localY = _loc4_.y;
  85.          _loc3_.buttonDown = param2.buttonDown;
  86.          _loc3_.shiftKey = param2.shiftKey;
  87.          _loc3_.altKey = param2.altKey;
  88.          _loc3_.ctrlKey = param2.ctrlKey;
  89.          _loc3_.delta = param2.delta;
  90.          _loc3_.relatedObject = InteractiveObject(param2.target);
  91.          param1.dispatchEvent(_loc3_);
  92.       }
  93.       
  94.       mx_internal static function updateModalMask(param1:ISystemManager, param2:DisplayObject, param3:IUIComponent, param4:Rectangle, param5:Sprite) : void
  95.       {
  96.          var _loc7_:Rectangle = null;
  97.          var _loc8_:Point = null;
  98.          var _loc9_:Rectangle = null;
  99.          var _loc6_:Rectangle = param2.getBounds(DisplayObject(param1));
  100.          if(param3 is ISWFLoader)
  101.          {
  102.             _loc7_ = ISWFLoader(param3).getVisibleApplicationRect();
  103.             _loc8_ = new Point(_loc7_.x,_loc7_.y);
  104.             _loc8_ = DisplayObject(param1).globalToLocal(_loc8_);
  105.             _loc7_.x = _loc8_.x;
  106.             _loc7_.y = _loc8_.y;
  107.          }
  108.          else if(!param3)
  109.          {
  110.             _loc7_ = _loc6_.clone();
  111.          }
  112.          else
  113.          {
  114.             _loc7_ = DisplayObject(param3).getBounds(DisplayObject(param1));
  115.          }
  116.          if(param4)
  117.          {
  118.             _loc8_ = new Point(param4.x,param4.y);
  119.             _loc8_ = DisplayObject(param1).globalToLocal(_loc8_);
  120.             _loc9_ = new Rectangle(_loc8_.x,_loc8_.y,param4.width,param4.height);
  121.             _loc7_ = _loc7_.intersection(_loc9_);
  122.          }
  123.          param5.graphics.clear();
  124.          param5.graphics.beginFill(0);
  125.          if(_loc7_.y > _loc6_.y)
  126.          {
  127.             param5.graphics.drawRect(_loc6_.x,_loc6_.y,_loc6_.width,_loc7_.y - _loc6_.y);
  128.          }
  129.          if(_loc6_.x < _loc7_.x)
  130.          {
  131.             param5.graphics.drawRect(_loc6_.x,_loc7_.y,_loc7_.x - _loc6_.x,_loc7_.height);
  132.          }
  133.          if(_loc6_.x + _loc6_.width > _loc7_.x + _loc7_.width)
  134.          {
  135.             param5.graphics.drawRect(_loc7_.x + _loc7_.width,_loc7_.y,_loc6_.x + _loc6_.width - _loc7_.x - _loc7_.width,_loc7_.height);
  136.          }
  137.          if(_loc7_.y + _loc7_.height < _loc6_.y + _loc6_.height)
  138.          {
  139.             param5.graphics.drawRect(_loc6_.x,_loc7_.y + _loc7_.height,_loc6_.width,_loc6_.y + _loc6_.height - _loc7_.y - _loc7_.height);
  140.          }
  141.          param5.graphics.endFill();
  142.       }
  143.       
  144.       private static function dispatchMouseDownOutsideEvent(param1:DisplayObject, param2:MouseEvent) : void
  145.       {
  146.          if(!param1)
  147.          {
  148.             return;
  149.          }
  150.          var _loc3_:MouseEvent = new FlexMouseEvent(FlexMouseEvent.MOUSE_DOWN_OUTSIDE);
  151.          var _loc4_:Point = param1.globalToLocal(new Point(param2.stageX,param2.stageY));
  152.          _loc3_.localX = _loc4_.x;
  153.          _loc3_.localY = _loc4_.y;
  154.          _loc3_.buttonDown = param2.buttonDown;
  155.          _loc3_.shiftKey = param2.shiftKey;
  156.          _loc3_.altKey = param2.altKey;
  157.          _loc3_.ctrlKey = param2.ctrlKey;
  158.          _loc3_.delta = param2.delta;
  159.          _loc3_.relatedObject = InteractiveObject(param2.target);
  160.          param1.dispatchEvent(_loc3_);
  161.       }
  162.       
  163.       public static function getInstance() : IPopUpManager
  164.       {
  165.          if(!instance)
  166.          {
  167.             instance = new PopUpManagerImpl();
  168.          }
  169.          return instance;
  170.       }
  171.       
  172.       private static function nonmodalMouseDownOutsideHandler(param1:DisplayObject, param2:MouseEvent) : void
  173.       {
  174.          if(!param1.hitTestPoint(param2.stageX,param2.stageY,true))
  175.          {
  176.             if(param1 is IUIComponent)
  177.             {
  178.                if(IUIComponent(param1).owns(DisplayObject(param2.target)))
  179.                {
  180.                   return;
  181.                }
  182.             }
  183.             dispatchMouseDownOutsideEvent(param1,param2);
  184.          }
  185.       }
  186.       
  187.       private function showModalWindow(param1:PopUpData, param2:ISystemManager, param3:Boolean = true) : void
  188.       {
  189.          var _loc4_:IStyleClient = param1.owner as IStyleClient;
  190.          var _loc5_:Number = 0;
  191.          var _loc6_:Number = 0;
  192.          if(!isNaN(param1.modalTransparencyDuration))
  193.          {
  194.             _loc5_ = param1.modalTransparencyDuration;
  195.          }
  196.          else if(_loc4_)
  197.          {
  198.             _loc5_ = Number(_loc4_.getStyle("modalTransparencyDuration"));
  199.             param1.modalTransparencyDuration = _loc5_;
  200.          }
  201.          if(!isNaN(param1.modalTransparency))
  202.          {
  203.             _loc6_ = param1.modalTransparency;
  204.          }
  205.          else if(_loc4_)
  206.          {
  207.             _loc6_ = Number(_loc4_.getStyle("modalTransparency"));
  208.             param1.modalTransparency = _loc6_;
  209.          }
  210.          param1.modalWindow.alpha = _loc6_;
  211.          var _loc7_:Number = 0;
  212.          if(!isNaN(param1.modalTransparencyBlur))
  213.          {
  214.             _loc7_ = param1.modalTransparencyBlur;
  215.          }
  216.          else if(_loc4_)
  217.          {
  218.             _loc7_ = Number(_loc4_.getStyle("modalTransparencyBlur"));
  219.             param1.modalTransparencyBlur = _loc7_;
  220.          }
  221.          var _loc8_:Number = 16777215;
  222.          if(!isNaN(param1.modalTransparencyColor))
  223.          {
  224.             _loc8_ = param1.modalTransparencyColor;
  225.          }
  226.          else if(_loc4_)
  227.          {
  228.             _loc8_ = Number(_loc4_.getStyle("modalTransparencyColor"));
  229.             param1.modalTransparencyColor = _loc8_;
  230.          }
  231.          if(param2 is SystemManagerProxy)
  232.          {
  233.             param2 = SystemManagerProxy(param2).systemManager;
  234.          }
  235.          var _loc9_:DisplayObject = param2.getSandboxRoot();
  236.          showModalWindowInternal(param1,_loc5_,_loc6_,_loc8_,_loc7_,param2,_loc9_);
  237.          if(param3 && Boolean(param2.useSWFBridge()))
  238.          {
  239.             dispatchModalWindowRequest(SWFBridgeRequest.SHOW_MODAL_WINDOW_REQUEST,param2,_loc9_,param1,true);
  240.          }
  241.       }
  242.       
  243.       private function popupShowHandler(param1:FlexEvent) : void
  244.       {
  245.          var _loc2_:PopUpData = findPopupInfoByOwner(param1.target);
  246.          if(_loc2_)
  247.          {
  248.             showModalWindow(_loc2_,getTopLevelSystemManager(_loc2_.parent));
  249.          }
  250.       }
  251.       
  252.       public function bringToFront(param1:IFlexDisplayObject) : void
  253.       {
  254.          var _loc2_:PopUpData = null;
  255.          var _loc3_:ISystemManager = null;
  256.          var _loc4_:InterManagerRequest = null;
  257.          if(Boolean(param1) && Boolean(param1.parent))
  258.          {
  259.             _loc2_ = findPopupInfoByOwner(param1);
  260.             if(_loc2_)
  261.             {
  262.                _loc3_ = ISystemManager(param1.parent);
  263.                if(_loc3_ is SystemManagerProxy)
  264.                {
  265.                   _loc4_ = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST,false,false,"bringToFront",{
  266.                      "topMost":_loc2_.topMost,
  267.                      "popUp":_loc3_
  268.                   });
  269.                   _loc3_.getSandboxRoot().dispatchEvent(_loc4_);
  270.                }
  271.                else if(_loc2_.topMost)
  272.                {
  273.                   _loc3_.popUpChildren.setChildIndex(DisplayObject(param1),_loc3_.popUpChildren.numChildren - 1);
  274.                }
  275.                else
  276.                {
  277.                   _loc3_.setChildIndex(DisplayObject(param1),_loc3_.numChildren - 1);
  278.                }
  279.             }
  280.          }
  281.       }
  282.       
  283.       public function centerPopUp(param1:IFlexDisplayObject) : void
  284.       {
  285.          var _loc3_:ISystemManager = null;
  286.          var _loc4_:Number = NaN;
  287.          var _loc5_:Number = NaN;
  288.          var _loc6_:Number = NaN;
  289.          var _loc7_:Number = NaN;
  290.          var _loc8_:Number = NaN;
  291.          var _loc9_:Number = NaN;
  292.          var _loc10_:Rectangle = null;
  293.          var _loc11_:Rectangle = null;
  294.          var _loc12_:Point = null;
  295.          var _loc13_:Point = null;
  296.          var _loc14_:Boolean = false;
  297.          var _loc15_:DisplayObject = null;
  298.          var _loc16_:InterManagerRequest = null;
  299.          var _loc17_:Point = null;
  300.          if(param1 is IInvalidating)
  301.          {
  302.             IInvalidating(param1).validateNow();
  303.          }
  304.          var _loc2_:PopUpData = findPopupInfoByOwner(param1);
  305.          if(Boolean(_loc2_) && Boolean(_loc2_.parent))
  306.          {
  307.             _loc3_ = _loc2_.systemManager;
  308.             _loc12_ = new Point();
  309.             _loc15_ = _loc3_.getSandboxRoot();
  310.             if(_loc3_ != _loc15_)
  311.             {
  312.                _loc16_ = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST,false,false,"isTopLevelRoot");
  313.                _loc15_.dispatchEvent(_loc16_);
  314.                _loc14_ = Boolean(_loc16_.value);
  315.             }
  316.             else
  317.             {
  318.                _loc14_ = Boolean(_loc3_.isTopLevelRoot());
  319.             }
  320.             if(_loc14_)
  321.             {
  322.                _loc10_ = _loc3_.screen;
  323.                _loc6_ = _loc10_.width;
  324.                _loc7_ = _loc10_.height;
  325.             }
  326.             else
  327.             {
  328.                if(_loc3_ != _loc15_)
  329.                {
  330.                   _loc16_ = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST,false,false,"getVisibleApplicationRect");
  331.                   _loc15_.dispatchEvent(_loc16_);
  332.                   _loc11_ = Rectangle(_loc16_.value);
  333.                }
  334.                else
  335.                {
  336.                   _loc11_ = _loc3_.getVisibleApplicationRect();
  337.                }
  338.                _loc12_ = new Point(_loc11_.x,_loc11_.y);
  339.                _loc12_ = DisplayObject(_loc3_).globalToLocal(_loc12_);
  340.                _loc6_ = _loc11_.width;
  341.                _loc7_ = _loc11_.height;
  342.             }
  343.             if(_loc2_.parent is UIComponent)
  344.             {
  345.                _loc11_ = UIComponent(_loc2_.parent).getVisibleRect();
  346.                _loc17_ = _loc2_.parent.globalToLocal(_loc11_.topLeft);
  347.                _loc12_.x += _loc17_.x;
  348.                _loc12_.y += _loc17_.y;
  349.                _loc8_ = _loc11_.width;
  350.                _loc9_ = _loc11_.height;
  351.             }
  352.             else
  353.             {
  354.                _loc8_ = _loc2_.parent.width;
  355.                _loc9_ = _loc2_.parent.height;
  356.             }
  357.             _loc4_ = Math.max(0,(Math.min(_loc6_,_loc8_) - param1.width) / 2);
  358.             _loc5_ = Math.max(0,(Math.min(_loc7_,_loc9_) - param1.height) / 2);
  359.             _loc13_ = new Point(_loc12_.x,_loc12_.y);
  360.             _loc13_ = _loc2_.parent.localToGlobal(_loc13_);
  361.             _loc13_ = param1.parent.globalToLocal(_loc13_);
  362.             param1.move(Math.round(_loc4_) + _loc13_.x,Math.round(_loc5_) + _loc13_.y);
  363.          }
  364.       }
  365.       
  366.       private function showModalWindowRequest(param1:Event) : void
  367.       {
  368.          var _loc2_:SWFBridgeRequest = SWFBridgeRequest.marshal(param1);
  369.          if(param1 is SWFBridgeRequest)
  370.          {
  371.             _loc2_ = SWFBridgeRequest(param1);
  372.          }
  373.          else
  374.          {
  375.             _loc2_ = SWFBridgeRequest.marshal(param1);
  376.          }
  377.          var _loc3_:ISystemManager = getTopLevelSystemManager(DisplayObject(ApplicationGlobals.application));
  378.          var _loc4_:DisplayObject = _loc3_.getSandboxRoot();
  379.          var _loc5_:PopUpData = findHighestRemoteModalPopupInfo();
  380.          _loc5_.excludeRect = Rectangle(_loc2_.data);
  381.          _loc5_.modalTransparency = _loc2_.data.transparency;
  382.          _loc5_.modalTransparencyBlur = 0;
  383.          _loc5_.modalTransparencyColor = _loc2_.data.transparencyColor;
  384.          _loc5_.modalTransparencyDuration = _loc2_.data.transparencyDuration;
  385.          if(Boolean(_loc5_.owner) || Boolean(_loc5_.parent))
  386.          {
  387.             throw new Error();
  388.          }
  389.          showModalWindow(_loc5_,_loc3_);
  390.       }
  391.       
  392.       private function hideOwnerHandler(param1:FlexEvent) : void
  393.       {
  394.          var _loc2_:PopUpData = findPopupInfoByOwner(param1.target);
  395.          if(_loc2_)
  396.          {
  397.             removeMouseOutEventListeners(_loc2_);
  398.          }
  399.       }
  400.       
  401.       private function fadeOutDestroyEffectEndHandler(param1:EffectEvent) : void
  402.       {
  403.          var _loc4_:ISystemManager = null;
  404.          effectEndHandler(param1);
  405.          var _loc2_:DisplayObject = DisplayObject(param1.effectInstance.target);
  406.          var _loc3_:DisplayObject = _loc2_.mask;
  407.          if(_loc3_)
  408.          {
  409.             _loc2_.mask = null;
  410.             _loc4_.popUpChildren.removeChild(_loc3_);
  411.          }
  412.          if(_loc2_.parent is ISystemManager)
  413.          {
  414.             _loc4_ = ISystemManager(_loc2_.parent);
  415.             if(_loc4_.popUpChildren.contains(_loc2_))
  416.             {
  417.                _loc4_.popUpChildren.removeChild(_loc2_);
  418.             }
  419.             else
  420.             {
  421.                _loc4_.removeChild(_loc2_);
  422.             }
  423.          }
  424.          else if(_loc2_.parent)
  425.          {
  426.             _loc2_.parent.removeChild(_loc2_);
  427.          }
  428.       }
  429.       
  430.       private function createModalWindowRequestHandler(param1:Event) : void
  431.       {
  432.          var _loc2_:SWFBridgeRequest = null;
  433.          if(param1 is SWFBridgeRequest)
  434.          {
  435.             _loc2_ = SWFBridgeRequest(param1);
  436.          }
  437.          else
  438.          {
  439.             _loc2_ = SWFBridgeRequest.marshal(param1);
  440.          }
  441.          var _loc3_:ISystemManager = getTopLevelSystemManager(DisplayObject(ApplicationGlobals.application));
  442.          var _loc4_:DisplayObject = _loc3_.getSandboxRoot();
  443.          var _loc5_:PopUpData = new PopUpData();
  444.          _loc5_.isRemoteModalWindow = true;
  445.          _loc5_.systemManager = _loc3_;
  446.          _loc5_.modalTransparency = _loc2_.data.transparency;
  447.          _loc5_.modalTransparencyBlur = 0;
  448.          _loc5_.modalTransparencyColor = _loc2_.data.transparencyColor;
  449.          _loc5_.modalTransparencyDuration = _loc2_.data.transparencyDuration;
  450.          _loc5_.exclude = _loc3_.swfBridgeGroup.getChildBridgeProvider(_loc2_.requestor) as IUIComponent;
  451.          _loc5_.useExclude = _loc2_.data.useExclude;
  452.          _loc5_.excludeRect = Rectangle(_loc2_.data.excludeRect);
  453.          if(!popupInfo)
  454.          {
  455.             popupInfo = [];
  456.          }
  457.          popupInfo.push(_loc5_);
  458.          createModalWindow(null,_loc5_,_loc3_.popUpChildren,_loc2_.data.show,_loc3_,_loc4_);
  459.       }
  460.       
  461.       private function showOwnerHandler(param1:FlexEvent) : void
  462.       {
  463.          var _loc2_:PopUpData = findPopupInfoByOwner(param1.target);
  464.          if(_loc2_)
  465.          {
  466.             addMouseOutEventListeners(_loc2_);
  467.          }
  468.       }
  469.       
  470.       private function addMouseOutEventListeners(param1:PopUpData) : void
  471.       {
  472.          var _loc2_:DisplayObject = param1.systemManager.getSandboxRoot();
  473.          if(param1.modalWindow)
  474.          {
  475.             param1.modalWindow.addEventListener(MouseEvent.MOUSE_DOWN,param1.mouseDownOutsideHandler);
  476.             param1.modalWindow.addEventListener(MouseEvent.MOUSE_WHEEL,param1.mouseWheelOutsideHandler,true);
  477.          }
  478.          else
  479.          {
  480.             _loc2_.addEventListener(MouseEvent.MOUSE_DOWN,param1.mouseDownOutsideHandler);
  481.             _loc2_.addEventListener(MouseEvent.MOUSE_WHEEL,param1.mouseWheelOutsideHandler,true);
  482.          }
  483.          _loc2_.addEventListener(SandboxMouseEvent.MOUSE_DOWN_SOMEWHERE,param1.marshalMouseOutsideHandler);
  484.          _loc2_.addEventListener(SandboxMouseEvent.MOUSE_WHEEL_SOMEWHERE,param1.marshalMouseOutsideHandler,true);
  485.       }
  486.       
  487.       private function fadeInEffectEndHandler(param1:EffectEvent) : void
  488.       {
  489.          var _loc4_:PopUpData = null;
  490.          effectEndHandler(param1);
  491.          var _loc2_:int = int(popupInfo.length);
  492.          var _loc3_:int = 0;
  493.          while(_loc3_ < _loc2_)
  494.          {
  495.             _loc4_ = popupInfo[_loc3_];
  496.             if(Boolean(_loc4_.owner) && _loc4_.modalWindow == param1.effectInstance.target)
  497.             {
  498.                IUIComponent(_loc4_.owner).setVisible(true,true);
  499.                break;
  500.             }
  501.             _loc3_++;
  502.          }
  503.       }
  504.       
  505.       private function hideModalWindowRequest(param1:Event) : void
  506.       {
  507.          var _loc2_:SWFBridgeRequest = null;
  508.          if(param1 is SWFBridgeRequest)
  509.          {
  510.             _loc2_ = SWFBridgeRequest(param1);
  511.          }
  512.          else
  513.          {
  514.             _loc2_ = SWFBridgeRequest.marshal(param1);
  515.          }
  516.          var _loc3_:ISystemManager = getTopLevelSystemManager(DisplayObject(ApplicationGlobals.application));
  517.          var _loc4_:DisplayObject = _loc3_.getSandboxRoot();
  518.          var _loc5_:PopUpData = findHighestRemoteModalPopupInfo();
  519.          if(!_loc5_ || _loc5_.owner || Boolean(_loc5_.parent))
  520.          {
  521.             throw new Error();
  522.          }
  523.          hideModalWindow(_loc5_,_loc2_.data.remove);
  524.          if(_loc2_.data.remove)
  525.          {
  526.             popupInfo.splice(popupInfo.indexOf(_loc5_),1);
  527.             --_loc3_.numModalWindows;
  528.          }
  529.       }
  530.       
  531.       private function getTopLevelSystemManager(param1:DisplayObject) : ISystemManager
  532.       {
  533.          var _loc2_:DisplayObjectContainer = null;
  534.          var _loc3_:ISystemManager = null;
  535.          if(param1.parent is SystemManagerProxy)
  536.          {
  537.             _loc2_ = DisplayObjectContainer(SystemManagerProxy(param1.parent).systemManager);
  538.          }
  539.          else if(param1 is IUIComponent && IUIComponent(param1).systemManager is SystemManagerProxy)
  540.          {
  541.             _loc2_ = DisplayObjectContainer(SystemManagerProxy(IUIComponent(param1).systemManager).systemManager);
  542.          }
  543.          else
  544.          {
  545.             _loc2_ = DisplayObjectContainer(param1.root);
  546.          }
  547.          if((!_loc2_ || _loc2_ is Stage) && param1 is IUIComponent)
  548.          {
  549.             _loc2_ = DisplayObjectContainer(IUIComponent(param1).systemManager);
  550.          }
  551.          if(_loc2_ is ISystemManager)
  552.          {
  553.             _loc3_ = ISystemManager(_loc2_);
  554.             if(!_loc3_.isTopLevel())
  555.             {
  556.                _loc3_ = _loc3_.topLevelSystemManager;
  557.             }
  558.          }
  559.          return _loc3_;
  560.       }
  561.       
  562.       private function hideModalWindow(param1:PopUpData, param2:Boolean = false) : void
  563.       {
  564.          var _loc6_:Fade = null;
  565.          var _loc7_:Number = NaN;
  566.          var _loc8_:Blur = null;
  567.          var _loc9_:DisplayObject = null;
  568.          var _loc10_:SWFBridgeRequest = null;
  569.          var _loc11_:IEventDispatcher = null;
  570.          var _loc12_:IEventDispatcher = null;
  571.          var _loc13_:InterManagerRequest = null;
  572.          if(param2 && Boolean(param1.exclude))
  573.          {
  574.             param1.exclude.removeEventListener(Event.RESIZE,param1.resizeHandler);
  575.             param1.exclude.removeEventListener(MoveEvent.MOVE,param1.resizeHandler);
  576.          }
  577.          var _loc3_:IStyleClient = param1.owner as IStyleClient;
  578.          var _loc4_:Number = 0;
  579.          if(_loc3_)
  580.          {
  581.             _loc4_ = Number(_loc3_.getStyle("modalTransparencyDuration"));
  582.          }
  583.          endEffects(param1);
  584.          if(_loc4_)
  585.          {
  586.             _loc6_ = new Fade(param1.modalWindow);
  587.             _loc6_.alphaFrom = param1.modalWindow.alpha;
  588.             _loc6_.alphaTo = 0;
  589.             _loc6_.duration = _loc4_;
  590.             _loc6_.addEventListener(EffectEvent.EFFECT_END,param2 ? fadeOutDestroyEffectEndHandler : fadeOutCloseEffectEndHandler);
  591.             param1.modalWindow.visible = true;
  592.             param1.fade = _loc6_;
  593.             _loc6_.play();
  594.             _loc7_ = Number(_loc3_.getStyle("modalTransparencyBlur"));
  595.             if(_loc7_)
  596.             {
  597.                _loc8_ = new Blur(param1.blurTarget);
  598.                _loc8_.blurXFrom = _loc8_.blurYFrom = _loc7_;
  599.                _loc8_.blurXTo = _loc8_.blurYTo = 0;
  600.                _loc8_.duration = _loc4_;
  601.                _loc8_.addEventListener(EffectEvent.EFFECT_END,effectEndHandler);
  602.                param1.blur = _loc8_;
  603.                _loc8_.play();
  604.             }
  605.          }
  606.          else
  607.          {
  608.             param1.modalWindow.visible = false;
  609.          }
  610.          var _loc5_:ISystemManager = ISystemManager(ApplicationGlobals.application.systemManager);
  611.          if(_loc5_.useSWFBridge())
  612.          {
  613.             _loc9_ = _loc5_.getSandboxRoot();
  614.             if(!param1.isRemoteModalWindow && _loc5_ != _loc9_)
  615.             {
  616.                _loc13_ = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST,false,false,"isTopLevelRoot");
  617.                _loc9_.dispatchEvent(_loc13_);
  618.                if(Boolean(_loc13_.value))
  619.                {
  620.                   return;
  621.                }
  622.             }
  623.             _loc10_ = new SWFBridgeRequest(SWFBridgeRequest.HIDE_MODAL_WINDOW_REQUEST,false,false,null,{
  624.                "skip":!param1.isRemoteModalWindow && _loc5_ != _loc9_,
  625.                "show":false,
  626.                "remove":param2
  627.             });
  628.             _loc11_ = _loc5_.swfBridgeGroup.parentBridge;
  629.             _loc10_.requestor = _loc11_;
  630.             _loc11_.dispatchEvent(_loc10_);
  631.          }
  632.       }
  633.       
  634.       private function popupHideHandler(param1:FlexEvent) : void
  635.       {
  636.          var _loc2_:PopUpData = findPopupInfoByOwner(param1.target);
  637.          if(_loc2_)
  638.          {
  639.             hideModalWindow(_loc2_);
  640.          }
  641.       }
  642.       
  643.       private function showModalWindowInternal(param1:PopUpData, param2:Number, param3:Number, param4:Number, param5:Number, param6:ISystemManager, param7:DisplayObject) : void
  644.       {
  645.          var _loc8_:Fade = null;
  646.          var _loc9_:Number = NaN;
  647.          var _loc10_:Object = null;
  648.          var _loc11_:Blur = null;
  649.          var _loc12_:InterManagerRequest = null;
  650.          endEffects(param1);
  651.          if(param2)
  652.          {
  653.             _loc8_ = new Fade(param1.modalWindow);
  654.             _loc8_.alphaFrom = 0;
  655.             _loc8_.alphaTo = param3;
  656.             _loc8_.duration = param2;
  657.             _loc8_.addEventListener(EffectEvent.EFFECT_END,fadeInEffectEndHandler);
  658.             param1.modalWindow.alpha = 0;
  659.             param1.modalWindow.visible = true;
  660.             param1.fade = _loc8_;
  661.             if(param1.owner)
  662.             {
  663.                IUIComponent(param1.owner).setVisible(false,true);
  664.             }
  665.             _loc8_.play();
  666.             _loc9_ = param5;
  667.             if(_loc9_)
  668.             {
  669.                if(param6 != param7)
  670.                {
  671.                   _loc12_ = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST,false,false,"application",_loc10_);
  672.                   param7.dispatchEvent(_loc12_);
  673.                   param1.blurTarget = _loc12_.value;
  674.                }
  675.                else
  676.                {
  677.                   param1.blurTarget = ApplicationGlobals.application;
  678.                }
  679.                _loc11_ = new Blur(param1.blurTarget);
  680.                _loc11_.blurXFrom = _loc11_.blurYFrom = 0;
  681.                _loc11_.blurXTo = _loc11_.blurYTo = _loc9_;
  682.                _loc11_.duration = param2;
  683.                _loc11_.addEventListener(EffectEvent.EFFECT_END,effectEndHandler);
  684.                param1.blur = _loc11_;
  685.                _loc11_.play();
  686.             }
  687.          }
  688.          else
  689.          {
  690.             if(param1.owner)
  691.             {
  692.                IUIComponent(param1.owner).setVisible(true,true);
  693.             }
  694.             param1.modalWindow.visible = true;
  695.          }
  696.       }
  697.       
  698.       private function effectEndHandler(param1:EffectEvent) : void
  699.       {
  700.          var _loc4_:PopUpData = null;
  701.          var _loc5_:IEffect = null;
  702.          var _loc2_:int = int(popupInfo.length);
  703.          var _loc3_:int = 0;
  704.          while(_loc3_ < _loc2_)
  705.          {
  706.             _loc4_ = popupInfo[_loc3_];
  707.             _loc5_ = param1.effectInstance.effect;
  708.             if(_loc5_ == _loc4_.fade)
  709.             {
  710.                _loc4_.fade = null;
  711.             }
  712.             else if(_loc5_ == _loc4_.blur)
  713.             {
  714.                _loc4_.blur = null;
  715.             }
  716.             _loc3_++;
  717.          }
  718.       }
  719.       
  720.       private function createModalWindow(param1:DisplayObject, param2:PopUpData, param3:IChildList, param4:Boolean, param5:ISystemManager, param6:DisplayObject) : void
  721.       {
  722.          var _loc7_:IFlexDisplayObject = null;
  723.          var _loc10_:Sprite = null;
  724.          var _loc11_:SystemManagerProxy = null;
  725.          var _loc12_:ISystemManager = null;
  726.          _loc7_ = IFlexDisplayObject(param2.owner);
  727.          var _loc8_:IStyleClient = _loc7_ as IStyleClient;
  728.          var _loc9_:Number = 0;
  729.          if(mx_internal::modalWindowClass)
  730.          {
  731.             _loc10_ = new mx_internal::modalWindowClass();
  732.          }
  733.          else
  734.          {
  735.             _loc10_ = new FlexSprite();
  736.             _loc10_.name = "modalWindow";
  737.          }
  738.          if(!param5 && Boolean(param1))
  739.          {
  740.             param5 = IUIComponent(param1).systemManager;
  741.          }
  742.          if(param5 is SystemManagerProxy)
  743.          {
  744.             _loc11_ = SystemManagerProxy(param5);
  745.             _loc12_ = _loc11_.systemManager;
  746.          }
  747.          else
  748.          {
  749.             _loc12_ = param5;
  750.          }
  751.          ++_loc12_.numModalWindows;
  752.          if(_loc7_)
  753.          {
  754.             param3.addChildAt(_loc10_,param3.getChildIndex(DisplayObject(_loc7_)));
  755.          }
  756.          else
  757.          {
  758.             param3.addChild(_loc10_);
  759.          }
  760.          if(_loc7_ is IAutomationObject)
  761.          {
  762.             IAutomationObject(_loc7_).showInAutomationHierarchy = true;
  763.          }
  764.          if(!isNaN(param2.modalTransparency))
  765.          {
  766.             _loc10_.alpha = param2.modalTransparency;
  767.          }
  768.          else if(_loc8_)
  769.          {
  770.             _loc10_.alpha = _loc8_.getStyle("modalTransparency");
  771.          }
  772.          else
  773.          {
  774.             _loc10_.alpha = 0;
  775.          }
  776.          param2.modalTransparency = _loc10_.alpha;
  777.          _loc10_.tabEnabled = false;
  778.          var _loc13_:Rectangle = _loc12_.screen;
  779.          var _loc14_:Graphics = _loc10_.graphics;
  780.          var _loc15_:Number = 16777215;
  781.          if(!isNaN(param2.modalTransparencyColor))
  782.          {
  783.             _loc15_ = param2.modalTransparencyColor;
  784.          }
  785.          else if(_loc8_)
  786.          {
  787.             _loc15_ = Number(_loc8_.getStyle("modalTransparencyColor"));
  788.             param2.modalTransparencyColor = _loc15_;
  789.          }
  790.          _loc14_.clear();
  791.          _loc14_.beginFill(_loc15_,100);
  792.          _loc14_.drawRect(_loc13_.x,_loc13_.y,_loc13_.width,_loc13_.height);
  793.          _loc14_.endFill();
  794.          param2.modalWindow = _loc10_;
  795.          if(param2.exclude)
  796.          {
  797.             param2.modalMask = new Sprite();
  798.             mx_internal::updateModalMask(_loc12_,_loc10_,param2.useExclude ? param2.exclude : null,param2.excludeRect,param2.modalMask);
  799.             _loc10_.mask = param2.modalMask;
  800.             param3.addChild(param2.modalMask);
  801.             param2.exclude.addEventListener(Event.RESIZE,param2.resizeHandler);
  802.             param2.exclude.addEventListener(MoveEvent.MOVE,param2.resizeHandler);
  803.          }
  804.          param2._mouseDownOutsideHandler = dispatchMouseDownOutsideEvent;
  805.          param2._mouseWheelOutsideHandler = dispatchMouseWheelOutsideEvent;
  806.          _loc12_.addEventListener(Event.RESIZE,param2.resizeHandler);
  807.          if(_loc7_)
  808.          {
  809.             _loc7_.addEventListener(FlexEvent.SHOW,popupShowHandler);
  810.             _loc7_.addEventListener(FlexEvent.HIDE,popupHideHandler);
  811.          }
  812.          if(param4)
  813.          {
  814.             showModalWindow(param2,param5,false);
  815.          }
  816.          else
  817.          {
  818.             _loc7_.visible = param4;
  819.          }
  820.          if(_loc12_.useSWFBridge())
  821.          {
  822.             if(_loc8_)
  823.             {
  824.                param2.modalTransparencyDuration = _loc8_.getStyle("modalTransparencyDuration");
  825.                param2.modalTransparencyBlur = _loc8_.getStyle("modalTransparencyBlur");
  826.             }
  827.             dispatchModalWindowRequest(SWFBridgeRequest.CREATE_MODAL_WINDOW_REQUEST,_loc12_,param6,param2,param4);
  828.          }
  829.       }
  830.       
  831.       private function findPopupInfoByOwner(param1:Object) : PopUpData
  832.       {
  833.          var _loc4_:PopUpData = null;
  834.          var _loc2_:int = int(popupInfo.length);
  835.          var _loc3_:int = 0;
  836.          while(_loc3_ < _loc2_)
  837.          {
  838.             _loc4_ = popupInfo[_loc3_];
  839.             if(_loc4_.owner == param1)
  840.             {
  841.                return _loc4_;
  842.             }
  843.             _loc3_++;
  844.          }
  845.          return null;
  846.       }
  847.       
  848.       private function popupRemovedHandler(param1:Event) : void
  849.       {
  850.          var _loc4_:PopUpData = null;
  851.          var _loc5_:DisplayObject = null;
  852.          var _loc6_:DisplayObject = null;
  853.          var _loc7_:DisplayObject = null;
  854.          var _loc8_:ISystemManager = null;
  855.          var _loc9_:ISystemManager = null;
  856.          var _loc10_:IEventDispatcher = null;
  857.          var _loc11_:SWFBridgeRequest = null;
  858.          var _loc2_:int = int(popupInfo.length);
  859.          var _loc3_:int = 0;
  860.          while(_loc3_ < _loc2_)
  861.          {
  862.             _loc4_ = popupInfo[_loc3_];
  863.             _loc5_ = _loc4_.owner;
  864.             if(_loc5_ == param1.target)
  865.             {
  866.                _loc6_ = _loc4_.parent;
  867.                _loc7_ = _loc4_.modalWindow;
  868.                _loc8_ = _loc4_.systemManager;
  869.                if(_loc8_ is SystemManagerProxy)
  870.                {
  871.                   _loc9_ = SystemManagerProxy(_loc8_).systemManager;
  872.                }
  873.                else
  874.                {
  875.                   _loc9_ = _loc8_;
  876.                }
  877.                if(!_loc8_.isTopLevel())
  878.                {
  879.                   _loc8_ = _loc8_.topLevelSystemManager;
  880.                }
  881.                if(_loc5_ is IUIComponent)
  882.                {
  883.                   IUIComponent(_loc5_).isPopUp = false;
  884.                }
  885.                if(_loc5_ is IFocusManagerContainer)
  886.                {
  887.                   _loc8_.removeFocusManager(IFocusManagerContainer(_loc5_));
  888.                }
  889.                _loc5_.removeEventListener(Event.REMOVED,popupRemovedHandler);
  890.                if(_loc8_ is SystemManagerProxy)
  891.                {
  892.                   _loc10_ = _loc9_.swfBridgeGroup.parentBridge;
  893.                   _loc11_ = new SWFBridgeRequest(SWFBridgeRequest.REMOVE_POP_UP_REQUEST,false,false,_loc10_,{
  894.                      "window":DisplayObject(_loc8_),
  895.                      "parent":_loc4_.parent,
  896.                      "modal":_loc4_.modalWindow != null
  897.                   });
  898.                   _loc9_.getSandboxRoot().dispatchEvent(_loc11_);
  899.                }
  900.                else if(_loc8_.useSWFBridge())
  901.                {
  902.                   _loc11_ = new SWFBridgeRequest(SWFBridgeRequest.REMOVE_POP_UP_PLACE_HOLDER_REQUEST,false,false,null,{"window":DisplayObject(_loc5_)});
  903.                   _loc11_.requestor = _loc8_.swfBridgeGroup.parentBridge;
  904.                   _loc11_.data.placeHolderId = NameUtil.displayObjectToString(DisplayObject(_loc5_));
  905.                   _loc8_.dispatchEvent(_loc11_);
  906.                }
  907.                if(_loc4_.owner)
  908.                {
  909.                   _loc4_.owner.removeEventListener(FlexEvent.SHOW,showOwnerHandler);
  910.                   _loc4_.owner.removeEventListener(FlexEvent.HIDE,hideOwnerHandler);
  911.                }
  912.                removeMouseOutEventListeners(_loc4_);
  913.                if(_loc7_)
  914.                {
  915.                   _loc9_.removeEventListener(Event.RESIZE,_loc4_.resizeHandler);
  916.                   _loc5_.removeEventListener(FlexEvent.SHOW,popupShowHandler);
  917.                   _loc5_.removeEventListener(FlexEvent.HIDE,popupHideHandler);
  918.                   hideModalWindow(_loc4_,true);
  919.                   --_loc9_.numModalWindows;
  920.                }
  921.                popupInfo.splice(_loc3_,1);
  922.                break;
  923.             }
  924.             _loc3_++;
  925.          }
  926.       }
  927.       
  928.       private function fadeOutCloseEffectEndHandler(param1:EffectEvent) : void
  929.       {
  930.          effectEndHandler(param1);
  931.          DisplayObject(param1.effectInstance.target).visible = false;
  932.       }
  933.       
  934.       private function endEffects(param1:PopUpData) : void
  935.       {
  936.          if(param1.fade)
  937.          {
  938.             param1.fade.end();
  939.             param1.fade = null;
  940.          }
  941.          if(param1.blur)
  942.          {
  943.             param1.blur.end();
  944.             param1.blur = null;
  945.          }
  946.       }
  947.       
  948.       public function removePopUp(param1:IFlexDisplayObject) : void
  949.       {
  950.          var _loc2_:PopUpData = null;
  951.          var _loc3_:ISystemManager = null;
  952.          var _loc4_:IUIComponent = null;
  953.          if(Boolean(param1) && Boolean(param1.parent))
  954.          {
  955.             _loc2_ = findPopupInfoByOwner(param1);
  956.             if(_loc2_)
  957.             {
  958.                _loc3_ = _loc2_.systemManager;
  959.                if(!_loc3_)
  960.                {
  961.                   _loc4_ = param1 as IUIComponent;
  962.                   if(!_loc4_)
  963.                   {
  964.                      return;
  965.                   }
  966.                   _loc3_ = ISystemManager(_loc4_.systemManager);
  967.                }
  968.                if(_loc2_.topMost)
  969.                {
  970.                   _loc3_.popUpChildren.removeChild(DisplayObject(param1));
  971.                }
  972.                else
  973.                {
  974.                   _loc3_.removeChild(DisplayObject(param1));
  975.                }
  976.             }
  977.          }
  978.       }
  979.       
  980.       public function addPopUp(param1:IFlexDisplayObject, param2:DisplayObject, param3:Boolean = false, param4:String = null) : void
  981.       {
  982.          var _loc7_:IChildList = null;
  983.          var _loc8_:* = false;
  984.          var _loc5_:Boolean = Boolean(param1.visible);
  985.          if(param2 is IUIComponent && param1 is IUIComponent && IUIComponent(param1).document == null)
  986.          {
  987.             IUIComponent(param1).document = IUIComponent(param2).document;
  988.          }
  989.          if(param2 is IUIComponent && IUIComponent(param2).document is IFlexModule && param1 is UIComponent && UIComponent(param1).moduleFactory == null)
  990.          {
  991.             UIComponent(param1).moduleFactory = IFlexModule(IUIComponent(param2).document).moduleFactory;
  992.          }
  993.          var _loc6_:ISystemManager = getTopLevelSystemManager(param2);
  994.          if(!_loc6_)
  995.          {
  996.             _loc6_ = ISystemManager(SystemManagerGlobals.topLevelSystemManagers[0]);
  997.             if(_loc6_.getSandboxRoot() != param2)
  998.             {
  999.                return;
  1000.             }
  1001.          }
  1002.          var _loc9_:ISystemManager = _loc6_;
  1003.          var _loc10_:DisplayObject = _loc6_.getSandboxRoot();
  1004.          var _loc11_:SWFBridgeRequest = null;
  1005.          if(_loc6_.useSWFBridge())
  1006.          {
  1007.             if(_loc10_ != _loc6_)
  1008.             {
  1009.                _loc9_ = new SystemManagerProxy(_loc6_);
  1010.                _loc11_ = new SWFBridgeRequest(SWFBridgeRequest.ADD_POP_UP_REQUEST,false,false,_loc6_.swfBridgeGroup.parentBridge,{
  1011.                   "window":DisplayObject(_loc9_),
  1012.                   "parent":param2,
  1013.                   "modal":param3,
  1014.                   "childList":param4
  1015.                });
  1016.                _loc10_.dispatchEvent(_loc11_);
  1017.             }
  1018.             else
  1019.             {
  1020.                _loc9_ = _loc6_;
  1021.             }
  1022.          }
  1023.          if(param1 is IUIComponent)
  1024.          {
  1025.             IUIComponent(param1).isPopUp = true;
  1026.          }
  1027.          if(!param4 || param4 == PopUpManagerChildList.PARENT)
  1028.          {
  1029.             _loc8_ = Boolean(_loc9_.popUpChildren.contains(param2));
  1030.          }
  1031.          else
  1032.          {
  1033.             _loc8_ = param4 == PopUpManagerChildList.POPUP;
  1034.          }
  1035.          _loc7_ = _loc8_ ? _loc9_.popUpChildren : _loc9_;
  1036.          _loc7_.addChild(DisplayObject(param1));
  1037.          param1.visible = false;
  1038.          if(!popupInfo)
  1039.          {
  1040.             popupInfo = [];
  1041.          }
  1042.          var _loc12_:PopUpData = new PopUpData();
  1043.          _loc12_.owner = DisplayObject(param1);
  1044.          _loc12_.topMost = _loc8_;
  1045.          _loc12_.systemManager = _loc9_;
  1046.          popupInfo.push(_loc12_);
  1047.          if(param1 is IFocusManagerContainer)
  1048.          {
  1049.             if(IFocusManagerContainer(param1).focusManager)
  1050.             {
  1051.                _loc9_.addFocusManager(IFocusManagerContainer(param1));
  1052.             }
  1053.             else
  1054.             {
  1055.                IFocusManagerContainer(param1).focusManager = new FocusManager(IFocusManagerContainer(param1),true);
  1056.             }
  1057.          }
  1058.          if(!_loc6_.isTopLevelRoot() && _loc10_ && _loc6_ == _loc10_)
  1059.          {
  1060.             _loc11_ = new SWFBridgeRequest(SWFBridgeRequest.ADD_POP_UP_PLACE_HOLDER_REQUEST,false,false,null,{"window":DisplayObject(param1)});
  1061.             _loc11_.requestor = _loc6_.swfBridgeGroup.parentBridge;
  1062.             _loc11_.data.placeHolderId = NameUtil.displayObjectToString(DisplayObject(param1));
  1063.             _loc6_.dispatchEvent(_loc11_);
  1064.          }
  1065.          if(param1 is IAutomationObject)
  1066.          {
  1067.             IAutomationObject(param1).showInAutomationHierarchy = true;
  1068.          }
  1069.          if(param1 is ILayoutManagerClient)
  1070.          {
  1071.             UIComponentGlobals.mx_internal::layoutManager.validateClient(ILayoutManagerClient(param1),true);
  1072.          }
  1073.          _loc12_.parent = param2;
  1074.          if(param1 is IUIComponent)
  1075.          {
  1076.             IUIComponent(param1).setActualSize(IUIComponent(param1).getExplicitOrMeasuredWidth(),IUIComponent(param1).getExplicitOrMeasuredHeight());
  1077.          }
  1078.          if(param3)
  1079.          {
  1080.             createModalWindow(param2,_loc12_,_loc7_,_loc5_,_loc9_,_loc10_);
  1081.          }
  1082.          else
  1083.          {
  1084.             _loc12_._mouseDownOutsideHandler = nonmodalMouseDownOutsideHandler;
  1085.             _loc12_._mouseWheelOutsideHandler = nonmodalMouseWheelOutsideHandler;
  1086.             param1.visible = _loc5_;
  1087.          }
  1088.          _loc12_.owner.addEventListener(FlexEvent.SHOW,showOwnerHandler);
  1089.          _loc12_.owner.addEventListener(FlexEvent.HIDE,hideOwnerHandler);
  1090.          addMouseOutEventListeners(_loc12_);
  1091.          param1.addEventListener(Event.REMOVED,popupRemovedHandler);
  1092.          if(param1 is IFocusManagerContainer && _loc5_)
  1093.          {
  1094.             if(!(_loc9_ is SystemManagerProxy) && Boolean(_loc9_.useSWFBridge()))
  1095.             {
  1096.                SystemManager(_loc9_).mx_internal::dispatchActivatedWindowEvent(DisplayObject(param1));
  1097.             }
  1098.             else
  1099.             {
  1100.                _loc9_.activate(IFocusManagerContainer(param1));
  1101.             }
  1102.          }
  1103.       }
  1104.       
  1105.       private function dispatchModalWindowRequest(param1:String, param2:ISystemManager, param3:DisplayObject, param4:PopUpData, param5:Boolean) : void
  1106.       {
  1107.          var _loc8_:InterManagerRequest = null;
  1108.          if(!param4.isRemoteModalWindow && param2 != param3)
  1109.          {
  1110.             _loc8_ = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST,false,false,"isTopLevelRoot");
  1111.             param3.dispatchEvent(_loc8_);
  1112.             if(Boolean(_loc8_.value))
  1113.             {
  1114.                return;
  1115.             }
  1116.          }
  1117.          var _loc6_:SWFBridgeRequest = new SWFBridgeRequest(param1,false,false,null,{
  1118.             "skip":!param4.isRemoteModalWindow && param2 != param3,
  1119.             "useExclude":param4.useExclude,
  1120.             "show":param5,
  1121.             "remove":false,
  1122.             "transparencyDuration":param4.modalTransparencyDuration,
  1123.             "transparency":param4.modalTransparency,
  1124.             "transparencyColor":param4.modalTransparencyColor,
  1125.             "transparencyBlur":param4.modalTransparencyBlur
  1126.          });
  1127.          var _loc7_:IEventDispatcher = param2.swfBridgeGroup.parentBridge;
  1128.          _loc6_.requestor = _loc7_;
  1129.          _loc7_.dispatchEvent(_loc6_);
  1130.       }
  1131.       
  1132.       public function createPopUp(param1:DisplayObject, param2:Class, param3:Boolean = false, param4:String = null) : IFlexDisplayObject
  1133.       {
  1134.          var _loc5_:IUIComponent = new param2();
  1135.          addPopUp(_loc5_,param1,param3,param4);
  1136.          return _loc5_;
  1137.       }
  1138.       
  1139.       private function removeMouseOutEventListeners(param1:PopUpData) : void
  1140.       {
  1141.          var _loc2_:DisplayObject = param1.systemManager.getSandboxRoot();
  1142.          if(param1.modalWindow)
  1143.          {
  1144.             param1.modalWindow.removeEventListener(MouseEvent.MOUSE_DOWN,param1.mouseDownOutsideHandler);
  1145.             param1.modalWindow.removeEventListener(MouseEvent.MOUSE_WHEEL,param1.mouseWheelOutsideHandler,true);
  1146.          }
  1147.          else
  1148.          {
  1149.             _loc2_.removeEventListener(MouseEvent.MOUSE_DOWN,param1.mouseDownOutsideHandler);
  1150.             _loc2_.removeEventListener(MouseEvent.MOUSE_WHEEL,param1.mouseWheelOutsideHandler,true);
  1151.          }
  1152.          _loc2_.removeEventListener(SandboxMouseEvent.MOUSE_DOWN_SOMEWHERE,param1.marshalMouseOutsideHandler);
  1153.          _loc2_.removeEventListener(SandboxMouseEvent.MOUSE_WHEEL_SOMEWHERE,param1.marshalMouseOutsideHandler,true);
  1154.       }
  1155.       
  1156.       private function findHighestRemoteModalPopupInfo() : PopUpData
  1157.       {
  1158.          var _loc3_:PopUpData = null;
  1159.          var _loc1_:int = int(popupInfo.length - 1);
  1160.          var _loc2_:int = _loc1_;
  1161.          while(_loc2_ >= 0)
  1162.          {
  1163.             _loc3_ = popupInfo[_loc2_];
  1164.             if(_loc3_.isRemoteModalWindow)
  1165.             {
  1166.                return _loc3_;
  1167.             }
  1168.             _loc2_--;
  1169.          }
  1170.          return null;
  1171.       }
  1172.    }
  1173. }
  1174.  
  1175. import flash.display.DisplayObject;
  1176. import flash.display.Sprite;
  1177. import flash.events.Event;
  1178. import flash.events.MouseEvent;
  1179. import flash.geom.Rectangle;
  1180. import mx.core.IUIComponent;
  1181. import mx.core.mx_internal;
  1182. import mx.effects.Effect;
  1183. import mx.events.SandboxMouseEvent;
  1184.  
  1185. use namespace mx_internal;
  1186.  
  1187. class PopUpData
  1188. {
  1189.    public var fade:Effect;
  1190.    
  1191.    public var modalTransparencyColor:Number;
  1192.    
  1193.    public var exclude:IUIComponent;
  1194.    
  1195.    public var isRemoteModalWindow:Boolean;
  1196.    
  1197.    public var useExclude:Boolean;
  1198.    
  1199.    public var blurTarget:Object;
  1200.    
  1201.    public var modalTransparencyDuration:Number;
  1202.    
  1203.    public var _mouseWheelOutsideHandler:Function;
  1204.    
  1205.    public var excludeRect:Rectangle;
  1206.    
  1207.    public var modalTransparency:Number;
  1208.    
  1209.    public var blur:Effect;
  1210.    
  1211.    public var parent:DisplayObject;
  1212.    
  1213.    public var modalTransparencyBlur:Number;
  1214.    
  1215.    public var _mouseDownOutsideHandler:Function;
  1216.    
  1217.    public var owner:DisplayObject;
  1218.    
  1219.    public var topMost:Boolean;
  1220.    
  1221.    public var modalMask:Sprite;
  1222.    
  1223.    public var modalWindow:DisplayObject;
  1224.    
  1225.    public var systemManager:ISystemManager;
  1226.    
  1227.    public function PopUpData()
  1228.    {
  1229.       super();
  1230.       useExclude = true;
  1231.    }
  1232.    
  1233.    public function marshalMouseOutsideHandler(param1:Event) : void
  1234.    {
  1235.       if(!(param1 is SandboxMouseEvent))
  1236.       {
  1237.          param1 = SandboxMouseEvent.marshal(param1);
  1238.       }
  1239.       if(owner)
  1240.       {
  1241.          owner.dispatchEvent(param1);
  1242.       }
  1243.    }
  1244.    
  1245.    public function mouseDownOutsideHandler(param1:MouseEvent) : void
  1246.    {
  1247.       _mouseDownOutsideHandler(owner,param1);
  1248.    }
  1249.    
  1250.    public function mouseWheelOutsideHandler(param1:MouseEvent) : void
  1251.    {
  1252.       _mouseWheelOutsideHandler(owner,param1);
  1253.    }
  1254.    
  1255.    public function resizeHandler(param1:Event) : void
  1256.    {
  1257.       var _loc2_:Rectangle = null;
  1258.       if(owner && owner.stage == DisplayObject(param1.target).stage || modalWindow && modalWindow.stage == DisplayObject(param1.target).stage)
  1259.       {
  1260.          _loc2_ = systemManager.screen;
  1261.          modalWindow.width = _loc2_.width;
  1262.          modalWindow.height = _loc2_.height;
  1263.          modalWindow.x = _loc2_.x;
  1264.          modalWindow.y = _loc2_.y;
  1265.          if(modalMask)
  1266.          {
  1267.             PopUpManagerImpl.mx_internal::updateModalMask(systemManager,modalWindow,exclude,excludeRect,modalMask);
  1268.          }
  1269.       }
  1270.    }
  1271. }
  1272.